<?php
require_once "PHPMailer.class.php";
/*
	邮件发送类
*/
class Email
{
	/**
	 * Initiates a connection to an SMTP server.
	 * @author <luyingli@huoyunren.com>
	 * @since 2016/03/29
	 * @uses SMTP
	 * @access public
	 * @return Object
	 */
	public function SmtpConnect(){
		$mail = new PHPMailer();
		$mail->IsSMTP();                                      // set mailer to use SMTP
		$mail->Host = "smtp.partner.outlook.cn";  // specify main and backup server
		$mail->Username = "g7zngcbi@huoyunren.com";  // SMTP username
		$mail->Password = "G7fuel123456"; // SMTP password
		$mail->Port=587;
		$mail->SMTPAuth = true;     // turn on SMTP authentication
		$mail->IsHTML(true);                                  // set email format to HTML
		$mail->From = "g7zngcbi@huoyunren.com";
		$mail->FromName =  "汇通天下";  // 发件人
		$mail->WordWrap = 50; // set word wrap 换行字数
		$mail->SMTPSecure='tls';
		$mail->CharSet = "UTF-8";   // 这里指定字符集！
		$mail->Encoding = "base64";
		$mail->MessageID = time();
		return $mail;
	}
	
	/**
	 * 发送邮件
	 * @api All
	 * @author lyl
	 * @author <luyingli@huoyunren.com>
	 * @version 1.1.0
	 * @since 2016/03/29
	 * @param array $args   参数说明
	 *              string  sendto_email            收件人邮箱      支持多个        格式：1,2,3                     必传
	 *              string  subject                         邮件主题                                                                        必传
	 *              string  AddCC                           抄送地址        支持多个 格式：1,2,3                            可选
	 *              string  AddBcc                          密送地址 支持多个       格式：1,2,3                             可选
	 *              string  Body                            邮件内容        文本格式                                                        必传
	 *              bool    IsHTML                          发送类型 true html格式发送      false文本格式发送       可选 默认为true
	 * @return 错误信息 || 返回1 发送成功
	 */
	public function sendEmail($args){
		$args['IsHTML'] = isset($args['IsHTML']) ? $args['IsHTML'] : true;
		$mail=$this->SmtpConnect();
		if(!empty($args['AddCC'])){	//添加抄送
			$AddCC = explode(',', $args['AddCC']);
			for($i=0;$i<count($AddCC);$i++){
				$mail->AddCC($AddCC[$i]);
			}
		}
		if(!empty($args['AddBcc'])){	// 添加密送
			$AddBcc = explode(',', $args['AddBcc']);
			for($i=0;$i<count($AddBcc);$i++)
			{
			$mail->AddBCC($AddBcc[$i]);
			}
		}
		$sendto_email = explode(',', $args['sendto_email']);
		for($i=0;$i<count($sendto_email);$i++){
			$mail->AddAddress($sendto_email[$i]);	//	设置收件人邮箱和姓名
		}
		$mail->IsHTML($args['IsHTML']); //定义发送格式 是html 还是text
		$mail->Subject = $args['subject'];		// 邮件主题
		$mail->Body = $args['Body'];	// 邮件内容
		$mail->AltBody = $args['IsHTML']==true ? "text/html" : "text/plain";
		if(!$mail->Send()){
			return "邮件发送有误 <p>邮件错误信息:". $mail->ErrorInfo;
		}
		else {
			return 1;
		}
	}
	
	public function job_sendEmail($args){
		set_time_limit(1800);
		ini_set('memory_limit','1024M');

		$sendParams = array(
			'IsHTML'            => true,
			'sendto_email'		=> $args['sendto'],
			'subject'			=> $args['subject'],
			'AddCC'				=> $args['copyto'],
			'AddBcc'			=> $args['meto'],
			'Body'				=> $args['emailtext']
		);
		
		$sendmail = $this->sendEmail($sendParams);
		return $sendmail;
	}
}